package com.nageoffer.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nageoffer.shortlink.admin.dao.entity.GroupDO;
import com.nageoffer.shortlink.admin.dto.req.GroupSaveRequestDTO;
import com.nageoffer.shortlink.admin.dto.req.GroupSortUpdateRequestDTO;
import com.nageoffer.shortlink.admin.dto.resp.GroupListRespDTO;

import java.util.List;

/**
 * @Author: 刘新智
 * @Date: 2025/10/20 19:07
 * @Description: 短链接分组接口层
 * @Version: v1.0
 */
public interface GroupService extends IService<GroupDO> {

    /**
     * @description: 新增短链接分组
     * @author: 刘新智
     * @date: 2025/10/20 19:50
     * @param: [groupSaveRequestDTO]
     * @return: void
     **/
    void save(GroupSaveRequestDTO groupSaveRequestDTO);


    /**
     * @description: 获取分组列表
     * @author: 刘新智
     * @date: 2025/10/21 10:21
     * @param: []
     * @return: java.util.List<com.nageoffer.shortlink.admin.dto.resp.GroupListRespDTO>
     **/
    List<GroupListRespDTO> groupList();


    /**
     * @description: 删除短链接分组
     * @author: 刘新智
     * @date: 2025/10/21 10:45
     * @param: [gid]
     * @return: void
     **/
    void delete(String gid);


    /**
     * @description: 修改分组排序
     * @author: 刘新智
     * @date: 2025/10/21 11:09
     * @param: [groupSortUpdateRequestDTO]
     * @return: void
     **/
    void updateSort(List<GroupSortUpdateRequestDTO> groupSortUpdateRequestDTOList);
}
